1. Field of the Invention
This invention relates in general to computer networking, and more particularly to network communication latency measurement relating to Internet communication.
2. Description of the Prior Art
Today, when an end user or any application under program control wants to use a network, such as the Internet, there is really only two basic kinds of attributes it can detect about the network. It can detect whether the network is operational and if the network has an actual connection to a far end destination across the network. The way it is usually done is with a standard command called xe2x80x9cPINGxe2x80x9d.
An application communicates with an underlying operating system to issue the PING command, and normally also issuing an associated ECHO command, to send a token message across the network. If the token message makes it to the far end destination and an echo token message returns back to the originating computer, one would determine that the network was connected and at least usable.
The other standard command is called xe2x80x9cROUTE TRACExe2x80x9d, which identifies all intermediate network nodes traversed by a token message sent across the network. For instance, the ROUTE TRACE command will identify all the routers, by router address, that handled a token message traversing across the network. So, one can map a possible path traversed by a token message across the network from the result of the ROUTE TRACE command. But, that is about all the information provided by the ROUTE TRACE command.
In summary, by using the PING command one can identify that both ends across the network are connected and operational. Further, by using the ROUTE TRACE command one can roughly approximate a route that a token message may take to traverse the network.
Additionally, utilizing a PING command one could approximate a total time elapsed from a time when the PING command was issued to a time when the PING command has returned with a value. This would approximate a total time for a token message to travel round-trip across the network. However, there are at least two problems with this approach.
First, the PING command issues a token message from the lower layers of the operating system. The token message truly does not travel end to end across the networkxe2x80x94including the latency up to and including the application layer of a computer system at each end of the network. The token message typically only travels from the middle of the operating system stack in the originating side, through the network, and up to the middle of the operating system stack on the terminating side, but not up all the way up to the terminating side application. This measures only Host-to-Host message communication but not application-to-application message communication, i.e., not all the way up through the application layer of a stack on a computing platform or Host.
Secondly, the PING command, as normally used today, is not a long or variable length message. The PING command typically issues a 56 byte token message, which is a very small packet for a network such as the Internet. For example, typical e-mail packets include thousands of bytes per packet. Video packets tend to be even bigger yet. So, the fact that a small packet can traverse the network in a timely fashion is not indicative of the fact that a large packet could also traverse the network in a timely fashion. In truth it is counter-indicative. Most routers have different queues for different kinds of messages, based on size and priority. The token messages from PING commands are high priority, small size messages and they tend to get handled much quicker through the routers. The larger message packets and the lower priority message packets tend to get handled last.
So, the fact that a token message from a PING command makes it through the network doesn""t mean that another message will also make it through. At least not in the time frame one might expect.
Accordingly, there is a need for a method and apparatus to eliminate those specific disadvantages of the prior art as discussed above, and particularly so that an application and an end user can determine that the application is communicating messages across the network with another application at a latency rate adequate to accomplish an intended job within its timing requirements.